#include <stdio.h>
#include <stdlib.h>
#include "start.h"
#include<time.h>

int main( int argc, char * argv[ ] )
{
	int processId; /* rank dos processos */
	int noProcesses; /* Número de processos */
	int nameSize; /* Tamanho do nome */
	char computerName[MPI_MAX_PROCESSOR_NAME];

	MPI_Status status;
	MPI_Request req;
	MPI_Init(&argc, &argv);
	MPI_Comm_size(MPI_COMM_WORLD, &noProcesses);
	MPI_Comm_rank(MPI_COMM_WORLD, &processId);
	MPI_Get_processor_name(computerName, &nameSize);

	int ndemandas,narestas,semente,nnos;
	char arq_arestas[50], arq_demandas[50];
	int num_vezes[MAX_NOS + 1][MAX_NOS + 1];

	strcpy(arq_arestas, argv[1]);
	strcpy(arq_demandas, argv[2]);

	int num_it = atoi(argv[3]);
//	int sup_min = atoi(argv[4]);
//	int qnt_padroes = atoi(argv[5]);
//	int qnt_elite = atoi(argv[6]);	
//	double limit = strtod(argv[7],NULL);	
	semente = 1;

	Ler_Arquivo_Arestas(arq_arestas, &nnos, &narestas, incidencia);

	ndemandas = Ler_Demandas(arq_demandas, demanda);

	if(processId==0){ // Master
		printf("master %s %s %d\n",arq_arestas, arq_demandas,num_it);
		init_master(narestas,ndemandas,semente,num_it);
	}else{ //Slave
		printf("slave %d %d %d\n",narestas,ndemandas,semente);
		init_slave(processId,nnos,narestas,ndemandas,semente,num_vezes);
	}
	MPI_Barrier(MPI_COMM_WORLD);
	printf("saiu %d\n",processId);
	MPI_Finalize();

	return 0;
}

